[AFF-BACKEND-002] Создать метод RegisterInteraction

Реализация алгоритма парных совпадений и сохранение весов в Redis

Author

Services Task & Simulation Framework Documentation

Published

July 13, 2026

NoteКраткая карточка задачи
  • Репозиторий / Компонент: affinity-service (Домен Recommendation Domain).
  • Контракт метода: Внутренний gRPC-сервер, метод RegisterInteraction.
  • Ссылка на Метод: Спецификация метода
  • Статус: Готово к реализации

  • Инструкция по шагам:
    1. Принять gRPC-запрос от helper-service. Извлечь user_id и items_list.
    2. Реализация алгоритма совпадений: Разработать комбинаторный алгоритм разбиения списка продуктов на уникальные пары (Unordered Pairs). Например, при покупке [A, B, C] сформировать пары (A, B), (A, C), (B, C).
    3. На Шаге 3: Для каждой сформированной пары выполнить атомарный инкремент веса связи в In-Memory Redis (база данных affinity_db согласно топологии).
    4. Использовать структуру данных Sorted Set (ZSET) или хэш-мапы (HINCRBYFLOAT). Ключ: affinity:user:{user_id}:product:{product_A}, поле: {product_B}, значение инкремента: +1.0. Дублировать инкремент симметрично для product_B -> product_A.